A patch to Scintilla 3.54 containing our changes to Scintilla
(removing unused lexers, exporting symbols, and an updated marshallers file).
diff --git scintilla/gtk/ScintillaGTK.cxx scintilla/gtk/ScintillaGTK.cxx
index 0871ca2..49dc278 100644
--- scintilla/gtk/ScintillaGTK.cxx
+++ scintilla/gtk/ScintillaGTK.cxx
@@ -3046,11 +3046,13 @@ sptr_t ScintillaGTK::DirectFunction(
 }
 
 /* legacy name for scintilla_object_send_message */
+GEANY_API_SYMBOL
 sptr_t scintilla_send_message(ScintillaObject *sci, unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
 	ScintillaGTK *psci = static_cast<ScintillaGTK *>(sci->pscin);
 	return psci->WndProc(iMessage, wParam, lParam);
 }
 
+GEANY_API_SYMBOL
 sptr_t scintilla_object_send_message(ScintillaObject *sci, unsigned int iMessage, uptr_t wParam, sptr_t lParam) {
 	return scintilla_send_message(sci, iMessage, wParam, lParam);
 }
@@ -3062,6 +3064,7 @@ extern void Platform_Initialise();
 extern void Platform_Finalise();
 
 /* legacy name for scintilla_object_get_type */
+GEANY_API_SYMBOL
 GType scintilla_get_type() {
 	static GType scintilla_type = 0;
 	try {
@@ -3091,6 +3094,7 @@ GType scintilla_get_type() {
 	return scintilla_type;
 }
 
+GEANY_API_SYMBOL
 GType scintilla_object_get_type() {
 	return scintilla_get_type();
 }
@@ -3200,6 +3204,7 @@ static void scintilla_init(ScintillaObje
 }
 
 /* legacy name for scintilla_object_new */
+GEANY_API_SYMBOL
 GtkWidget* scintilla_new() {
 	GtkWidget *widget = GTK_WIDGET(g_object_new(scintilla_get_type(), NULL));
 	gtk_widget_set_direction(widget, GTK_TEXT_DIR_LTR);
@@ -3207,6 +3212,7 @@ GtkWidget* scintilla_new() {
 	return widget;
 }
 
+GEANY_API_SYMBOL
 GtkWidget *scintilla_object_new() {
 	return scintilla_new();
 }
diff --git scintilla/gtk/scintilla-marshal.c scintilla/gtk/scintilla-marshal.c
index be57b7c..cee3e73 100644
--- scintilla/gtk/scintilla-marshal.c
+++ scintilla/gtk/scintilla-marshal.c
@@ -35,8 +35,8 @@
 #define g_marshal_value_peek_ulong(v)    (v)->data[0].v_ulong
 #define g_marshal_value_peek_int64(v)    (v)->data[0].v_int64
 #define g_marshal_value_peek_uint64(v)   (v)->data[0].v_uint64
-#define g_marshal_value_peek_enum(v)     (v)->data[0].v_int
-#define g_marshal_value_peek_flags(v)    (v)->data[0].v_uint
+#define g_marshal_value_peek_enum(v)     (v)->data[0].v_long
+#define g_marshal_value_peek_flags(v)    (v)->data[0].v_ulong
 #define g_marshal_value_peek_float(v)    (v)->data[0].v_float
 #define g_marshal_value_peek_double(v)   (v)->data[0].v_double
 #define g_marshal_value_peek_string(v)   (v)->data[0].v_pointer
@@ -50,10 +50,10 @@
 /* NONE:INT,POINTER (scintilla-marshal.list:1) */
 void
 scintilla_marshal_VOID__INT_POINTER (GClosure     *closure,
-                                     GValue       *return_value,
+                                     GValue       *return_value G_GNUC_UNUSED,
                                      guint         n_param_values,
                                      const GValue *param_values,
-                                     gpointer      invocation_hint,
+                                     gpointer      invocation_hint G_GNUC_UNUSED,
                                      gpointer      marshal_data)
 {
   typedef void (*GMarshalFunc_VOID__INT_POINTER) (gpointer     data1,
diff --git scintilla/src/Catalogue.cxx scintilla/src/Catalogue.cxx
index ed47aa8..e58f1ab 100644
--- scintilla/src/Catalogue.cxx
+++ scintilla/src/Catalogue.cxx
@@ -77,120 +77,50 @@ int Scintilla_LinkLexers() {
 
 //++Autogenerated -- run scripts/LexGen.py to regenerate
 //**\(\tLINK_LEXER(\*);\n\)
-	LINK_LEXER(lmA68k);
 	LINK_LEXER(lmAbaqus);
 	LINK_LEXER(lmAda);
-	LINK_LEXER(lmAPDL);
-	LINK_LEXER(lmAs);
 	LINK_LEXER(lmAsm);
-	LINK_LEXER(lmAsn1);
-	LINK_LEXER(lmASY);
-	LINK_LEXER(lmAU3);
-	LINK_LEXER(lmAVE);
-	LINK_LEXER(lmAVS);
-	LINK_LEXER(lmBaan);
 	LINK_LEXER(lmBash);
 	LINK_LEXER(lmBatch);
-	LINK_LEXER(lmBibTeX);
-	LINK_LEXER(lmBlitzBasic);
-	LINK_LEXER(lmBullant);
 	LINK_LEXER(lmCaml);
-	LINK_LEXER(lmClw);
-	LINK_LEXER(lmClwNoCase);
 	LINK_LEXER(lmCmake);
 	LINK_LEXER(lmCOBOL);
 	LINK_LEXER(lmCoffeeScript);
-	LINK_LEXER(lmConf);
 	LINK_LEXER(lmCPP);
-	LINK_LEXER(lmCPPNoCase);
-	LINK_LEXER(lmCsound);
 	LINK_LEXER(lmCss);
 	LINK_LEXER(lmD);
 	LINK_LEXER(lmDiff);
-	LINK_LEXER(lmDMAP);
-	LINK_LEXER(lmDMIS);
-	LINK_LEXER(lmECL);
-	LINK_LEXER(lmEiffel);
-	LINK_LEXER(lmEiffelkw);
 	LINK_LEXER(lmErlang);
-	LINK_LEXER(lmErrorList);
-	LINK_LEXER(lmESCRIPT);
 	LINK_LEXER(lmF77);
-	LINK_LEXER(lmFlagShip);
 	LINK_LEXER(lmForth);
 	LINK_LEXER(lmFortran);
 	LINK_LEXER(lmFreeBasic);
-	LINK_LEXER(lmGAP);
-	LINK_LEXER(lmGui4Cli);
 	LINK_LEXER(lmHaskell);
 	LINK_LEXER(lmHTML);
-	LINK_LEXER(lmIHex);
-	LINK_LEXER(lmInno);
-	LINK_LEXER(lmKix);
-	LINK_LEXER(lmKVIrc);
 	LINK_LEXER(lmLatex);
 	LINK_LEXER(lmLISP);
-	LINK_LEXER(lmLiterateHaskell);
-	LINK_LEXER(lmLot);
-	LINK_LEXER(lmLout);
 	LINK_LEXER(lmLua);
-	LINK_LEXER(lmMagikSF);
 	LINK_LEXER(lmMake);
 	LINK_LEXER(lmMarkdown);
-	LINK_LEXER(lmMatlab);
-	LINK_LEXER(lmMETAPOST);
-	LINK_LEXER(lmMMIXAL);
-	LINK_LEXER(lmModula);
-	LINK_LEXER(lmMSSQL);
-	LINK_LEXER(lmMySQL);
-	LINK_LEXER(lmNimrod);
-	LINK_LEXER(lmNncrontab);
+	// We use Octave instead of Matlab
 	LINK_LEXER(lmNsis);
 	LINK_LEXER(lmNull);
 	LINK_LEXER(lmOctave);
-	LINK_LEXER(lmOpal);
-	LINK_LEXER(lmOScript);
 	LINK_LEXER(lmPascal);
-	LINK_LEXER(lmPB);
 	LINK_LEXER(lmPerl);
 	LINK_LEXER(lmPHPSCRIPT);
-	LINK_LEXER(lmPLM);
 	LINK_LEXER(lmPO);
-	LINK_LEXER(lmPOV);
-	LINK_LEXER(lmPowerPro);
 	LINK_LEXER(lmPowerShell);
-	LINK_LEXER(lmProgress);
 	LINK_LEXER(lmProps);
-	LINK_LEXER(lmPS);
-	LINK_LEXER(lmPureBasic);
 	LINK_LEXER(lmPython);
 	LINK_LEXER(lmR);
-	LINK_LEXER(lmREBOL);
-	LINK_LEXER(lmRegistry);
 	LINK_LEXER(lmRuby);
 	LINK_LEXER(lmRust);
-	LINK_LEXER(lmScriptol);
-	LINK_LEXER(lmSmalltalk);
-	LINK_LEXER(lmSML);
-	LINK_LEXER(lmSorc);
-	LINK_LEXER(lmSpecman);
-	LINK_LEXER(lmSpice);
 	LINK_LEXER(lmSQL);
-	LINK_LEXER(lmSrec);
-	LINK_LEXER(lmSTTXT);
-	LINK_LEXER(lmTACL);
-	LINK_LEXER(lmTADS3);
-	LINK_LEXER(lmTAL);
 	LINK_LEXER(lmTCL);
-	LINK_LEXER(lmTCMD);
-	LINK_LEXER(lmTEHex);
-	LINK_LEXER(lmTeX);
 	LINK_LEXER(lmTxt2tags);
-	LINK_LEXER(lmVB);
-	LINK_LEXER(lmVBScript);
 	LINK_LEXER(lmVerilog);
 	LINK_LEXER(lmVHDL);
-	LINK_LEXER(lmVisualProlog);
 	LINK_LEXER(lmXML);
 	LINK_LEXER(lmYAML);
 
